﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NetPE.Disasm.CIL
{
    public class OpCodes
    {
        internal static Dictionary<ushort, OpCode> Opcodes = new Dictionary<ushort, OpCode>();
        
        public static OpCode Nop = new OpCode("nop", 0x0000, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push0);
        public static OpCode Break = new OpCode("break", 0x0001, FlowControl.Break, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push0);
        public static OpCode Ldarg_0 = new OpCode("ldarg.0", 0x0002, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push1);
        public static OpCode Ldarg_1 = new OpCode("ldarg.1", 0x0003, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push1);
        public static OpCode Ldarg_2 = new OpCode("ldarg.2", 0x0004, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push1);
        public static OpCode Ldarg_3 = new OpCode("ldarg.3", 0x0005, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push1);
        public static OpCode Ldloc_0 = new OpCode("ldloc.0", 0x0006, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push1);
        public static OpCode Ldloc_1 = new OpCode("ldloc.1", 0x0007, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push1);
        public static OpCode Ldloc_2 = new OpCode("ldloc.2", 0x0008, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push1);
        public static OpCode Ldloc_3 = new OpCode("ldloc.3", 0x0009, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push1);
        public static OpCode Stloc_0 = new OpCode("stloc.0", 0x000a, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Push0);
        public static OpCode Stloc_1 = new OpCode("stloc.1", 0x000b, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Push0);
        public static OpCode Stloc_2 = new OpCode("stloc.2", 0x000c, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Push0);
        public static OpCode Stloc_3 = new OpCode("stloc.3", 0x000d, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Push0);
        public static OpCode Ldarg_s = new OpCode("ldarg.s", 0x000e, FlowControl.Next, OpCodeType.Macro, OperandType.ShortInlineParam, StackBehaviour.Pop0, StackBehaviour.Push1);
        public static OpCode Ldarga_s = new OpCode("ldarga.s", 0x000f, FlowControl.Next, OpCodeType.Macro, OperandType.ShortInlineParam, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Starg_s = new OpCode("starg.s", 0x0010, FlowControl.Next, OpCodeType.Macro, OperandType.ShortInlineParam, StackBehaviour.Pop1, StackBehaviour.Push0);
        public static OpCode Ldloc_s = new OpCode("ldloc.s", 0x0011, FlowControl.Next, OpCodeType.Macro, OperandType.ShortInlineVar, StackBehaviour.Pop0, StackBehaviour.Push1);
        public static OpCode Ldloca_s = new OpCode("ldloca.s", 0x0012, FlowControl.Next, OpCodeType.Macro, OperandType.ShortInlineVar, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Stloc_s = new OpCode("stloc.s", 0x0013, FlowControl.Next, OpCodeType.Macro, OperandType.ShortInlineVar, StackBehaviour.Pop1, StackBehaviour.Push0);
        public static OpCode Ldnull = new OpCode("ldnull", 0x0014, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Pushref);
        public static OpCode Ldc_i4_m1 = new OpCode("ldc.i4.m1", 0x0015, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ldc_i4_0 = new OpCode("ldc.i4.0", 0x0016, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ldc_i4_1 = new OpCode("ldc.i4.1", 0x0017, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ldc_i4_2 = new OpCode("ldc.i4.2", 0x0018, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ldc_i4_3 = new OpCode("ldc.i4.3", 0x0019, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ldc_i4_4 = new OpCode("ldc.i4.4", 0x001a, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ldc_i4_5 = new OpCode("ldc.i4.5", 0x001b, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ldc_i4_6 = new OpCode("ldc.i4.6", 0x001c, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ldc_i4_7 = new OpCode("ldc.i4.7", 0x001d, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ldc_i4_8 = new OpCode("ldc.i4.8", 0x001e, FlowControl.Next, OpCodeType.Macro, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ldc_i4_s = new OpCode("ldc.i4.s", 0x001f, FlowControl.Next, OpCodeType.Macro, OperandType.ShortInlineI, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ldc_i4 = new OpCode("ldc.i4", 0x0020, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineI, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ldc_i8 = new OpCode("ldc.i8", 0x0021, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineI8, StackBehaviour.Pop0, StackBehaviour.Pushi8);
        public static OpCode Ldc_r4 = new OpCode("ldc.r4", 0x0022, FlowControl.Next, OpCodeType.Primitive, OperandType.ShortInlineR, StackBehaviour.Pop0, StackBehaviour.Pushr4);
        public static OpCode Ldc_r8 = new OpCode("ldc.r8", 0x0023, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineR, StackBehaviour.Pop0, StackBehaviour.Pushr8);
        public static OpCode Dup = new OpCode("dup", 0x0025, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Push1_push1);
        public static OpCode Pop = new OpCode("pop", 0x0026, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Push0);
        public static OpCode Jmp = new OpCode("jmp", 0x0027, FlowControl.Call, OpCodeType.Primitive, OperandType.InlineMethod, StackBehaviour.Pop0, StackBehaviour.Push0);
        public static OpCode Call = new OpCode("call", 0x0028, FlowControl.Call, OpCodeType.Primitive, OperandType.InlineMethod, StackBehaviour.Varpop, StackBehaviour.Varpush);
        public static OpCode Calli = new OpCode("calli", 0x0029, FlowControl.Call, OpCodeType.Primitive, OperandType.InlineSig, StackBehaviour.Varpop, StackBehaviour.Varpush);
        public static OpCode Ret = new OpCode("ret", 0x002a, FlowControl.Return, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Varpop, StackBehaviour.Push0);
        public static OpCode Br_s = new OpCode("br.s", 0x002b, FlowControl.Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.Pop0, StackBehaviour.Push0);
        public static OpCode Brfalse_s = new OpCode("brfalse.s", 0x002c, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.Popi, StackBehaviour.Push0);
        public static OpCode Brtrue_s = new OpCode("brtrue.s", 0x002d, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.Popi, StackBehaviour.Push0);
        public static OpCode Beq_s = new OpCode("beq.s", 0x002e, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Bge_s = new OpCode("bge.s", 0x002f, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Bgt_s = new OpCode("bgt.s", 0x0030, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Ble_s = new OpCode("ble.s", 0x0031, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Blt_s = new OpCode("blt.s", 0x0032, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Bne_un_s = new OpCode("bne.un.s", 0x0033, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Bge_un_s = new OpCode("bge.un.s", 0x0034, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Bgt_un_s = new OpCode("bgt.un.s", 0x0035, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Ble_un_s = new OpCode("ble.un.s", 0x0036, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Blt_un_s = new OpCode("blt.un.s", 0x0037, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Br = new OpCode("br", 0x0038, FlowControl.Branch, OpCodeType.Primitive, OperandType.InlineBrTarget, StackBehaviour.Pop0, StackBehaviour.Push0);
        public static OpCode Brfalse = new OpCode("brfalse", 0x0039, FlowControl.Cond_Branch, OpCodeType.Primitive, OperandType.InlineBrTarget, StackBehaviour.Popi, StackBehaviour.Push0);
        public static OpCode Brtrue = new OpCode("brtrue", 0x003a, FlowControl.Cond_Branch, OpCodeType.Primitive, OperandType.InlineBrTarget, StackBehaviour.Popi, StackBehaviour.Push0);
        public static OpCode Beq = new OpCode("beq", 0x003b, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.InlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Bge = new OpCode("bge", 0x003c, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.InlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Bgt = new OpCode("bgt", 0x003d, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.InlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Ble = new OpCode("ble", 0x003e, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.InlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Blt = new OpCode("blt", 0x003f, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.InlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Bne_un = new OpCode("bne.un", 0x0040, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.InlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Bge_un = new OpCode("bge.un", 0x0041, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.InlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Bgt_un = new OpCode("bgt.un", 0x0042, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.InlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Ble_un = new OpCode("ble.un", 0x0043, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.InlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Blt_un = new OpCode("blt.un", 0x0044, FlowControl.Cond_Branch, OpCodeType.Macro, OperandType.InlineBrTarget, StackBehaviour.Pop1_pop1, StackBehaviour.Push0);
        public static OpCode Switch = new OpCode("switch", 0x0045, FlowControl.Cond_Branch, OpCodeType.Primitive, OperandType.InlineSwitch, StackBehaviour.Popi, StackBehaviour.Push0);
        public static OpCode Ldind_i1 = new OpCode("ldind.i1", 0x0046, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi, StackBehaviour.Pushi);
        public static OpCode Ldind_u1 = new OpCode("ldind.u1", 0x0047, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi, StackBehaviour.Pushi);
        public static OpCode Ldind_i2 = new OpCode("ldind.i2", 0x0048, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi, StackBehaviour.Pushi);
        public static OpCode Ldind_u2 = new OpCode("ldind.u2", 0x0049, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi, StackBehaviour.Pushi);
        public static OpCode Ldind_i4 = new OpCode("ldind.i4", 0x004a, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi, StackBehaviour.Pushi);
        public static OpCode Ldind_u4 = new OpCode("ldind.u4", 0x004b, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi, StackBehaviour.Pushi);
        public static OpCode Ldind_i8 = new OpCode("ldind.i8", 0x004c, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi, StackBehaviour.Pushi8);
        public static OpCode Ldind_i = new OpCode("ldind.i", 0x004d, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi, StackBehaviour.Pushi);
        public static OpCode Ldind_r4 = new OpCode("ldind.r4", 0x004e, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi, StackBehaviour.Pushr4);
        public static OpCode Ldind_r8 = new OpCode("ldind.r8", 0x004f, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi, StackBehaviour.Pushr8);
        public static OpCode Ldind_ref = new OpCode("ldind.ref", 0x0050, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi, StackBehaviour.Pushref);
        public static OpCode Stind_ref = new OpCode("stind.ref", 0x0051, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi_popi, StackBehaviour.Push0);
        public static OpCode Stind_i1 = new OpCode("stind.i1", 0x0052, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi_popi, StackBehaviour.Push0);
        public static OpCode Stind_i2 = new OpCode("stind.i2", 0x0053, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi_popi, StackBehaviour.Push0);
        public static OpCode Stind_i4 = new OpCode("stind.i4", 0x0054, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi_popi, StackBehaviour.Push0);
        public static OpCode Stind_i8 = new OpCode("stind.i8", 0x0055, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi_popi8, StackBehaviour.Push0);
        public static OpCode Stind_r4 = new OpCode("stind.r4", 0x0056, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi_popr4, StackBehaviour.Push0);
        public static OpCode Stind_r8 = new OpCode("stind.r8", 0x0057, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi_popr8, StackBehaviour.Push0);
        public static OpCode Add = new OpCode("add", 0x0058, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Sub = new OpCode("sub", 0x0059, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Mul = new OpCode("mul", 0x005a, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Div = new OpCode("div", 0x005b, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Div_un = new OpCode("div.un", 0x005c, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Rem = new OpCode("rem", 0x005d, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Rem_un = new OpCode("rem.un", 0x005e, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode And = new OpCode("and", 0x005f, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Or = new OpCode("or", 0x0060, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Xor = new OpCode("xor", 0x0061, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Shl = new OpCode("shl", 0x0062, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Shr = new OpCode("shr", 0x0063, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Shr_un = new OpCode("shr.un", 0x0064, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Neg = new OpCode("neg", 0x0065, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Push1);
        public static OpCode Not = new OpCode("not", 0x0066, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Push1);
        public static OpCode Conv_i1 = new OpCode("conv.i1", 0x0067, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_i2 = new OpCode("conv.i2", 0x0068, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_i4 = new OpCode("conv.i4", 0x0069, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_i8 = new OpCode("conv.i8", 0x006a, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi8);
        public static OpCode Conv_r4 = new OpCode("conv.r4", 0x006b, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushr4);
        public static OpCode Conv_r8 = new OpCode("conv.r8", 0x006c, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushr8);
        public static OpCode Conv_u4 = new OpCode("conv.u4", 0x006d, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_u8 = new OpCode("conv.u8", 0x006e, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi8);
        public static OpCode Callvirt = new OpCode("callvirt", 0x006f, FlowControl.Call, OpCodeType.Objmodel, OperandType.InlineMethod, StackBehaviour.Varpop, StackBehaviour.Varpush);
        public static OpCode Cpobj = new OpCode("cpobj", 0x0070, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineType, StackBehaviour.Popi_popi, StackBehaviour.Push0);
        public static OpCode Ldobj = new OpCode("ldobj", 0x0071, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineType, StackBehaviour.Popi, StackBehaviour.Push1);
        public static OpCode Ldstr = new OpCode("ldstr", 0x0072, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineString, StackBehaviour.Pop0, StackBehaviour.Pushref);
        public static OpCode Newobj = new OpCode("newobj", 0x0073, FlowControl.Call, OpCodeType.Objmodel, OperandType.InlineMethod, StackBehaviour.Varpop, StackBehaviour.Pushref);
        public static OpCode Castclass = new OpCode("castclass", 0x0074, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineType, StackBehaviour.Popref, StackBehaviour.Pushref);
        public static OpCode Isinst = new OpCode("isinst", 0x0075, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineType, StackBehaviour.Popref, StackBehaviour.Pushi);
        public static OpCode Conv_r_un = new OpCode("conv.r.un", 0x0076, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushr8);
        public static OpCode Unbox = new OpCode("unbox", 0x0079, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineType, StackBehaviour.Popref, StackBehaviour.Pushi);
        public static OpCode Throw = new OpCode("throw", 0x007a, FlowControl.Throw, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref, StackBehaviour.Push0);
        public static OpCode Ldfld = new OpCode("ldfld", 0x007b, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineField, StackBehaviour.Popref, StackBehaviour.Push1);
        public static OpCode Ldflda = new OpCode("ldflda", 0x007c, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineField, StackBehaviour.Popref, StackBehaviour.Pushi);
        public static OpCode Stfld = new OpCode("stfld", 0x007d, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineField, StackBehaviour.Popref_pop1, StackBehaviour.Push0);
        public static OpCode Ldsfld = new OpCode("ldsfld", 0x007e, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineField, StackBehaviour.Pop0, StackBehaviour.Push1);
        public static OpCode Ldsflda = new OpCode("ldsflda", 0x007f, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineField, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Stsfld = new OpCode("stsfld", 0x0080, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineField, StackBehaviour.Pop1, StackBehaviour.Push0);
        public static OpCode Stobj = new OpCode("stobj", 0x0081, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineType, StackBehaviour.Popi_pop1, StackBehaviour.Push0);
        public static OpCode Conv_ovf_i1_un = new OpCode("conv.ovf.i1.un", 0x0082, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_i2_un = new OpCode("conv.ovf.i2.un", 0x0083, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_i4_un = new OpCode("conv.ovf.i4.un", 0x0084, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_i8_un = new OpCode("conv.ovf.i8.un", 0x0085, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi8);
        public static OpCode Conv_ovf_u1_un = new OpCode("conv.ovf.u1.un", 0x0086, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_u2_un = new OpCode("conv.ovf.u2.un", 0x0087, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_u4_un = new OpCode("conv.ovf.u4.un", 0x0088, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_u8_un = new OpCode("conv.ovf.u8.un", 0x0089, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi8);
        public static OpCode Conv_ovf_i_un = new OpCode("conv.ovf.i.un", 0x008a, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_u_un = new OpCode("conv.ovf.u.un", 0x008b, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Box = new OpCode("box", 0x008c, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineType, StackBehaviour.Pop1, StackBehaviour.Pushref);
        public static OpCode Newarr = new OpCode("newarr", 0x008d, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineType, StackBehaviour.Popi, StackBehaviour.Pushref);
        public static OpCode Ldlen = new OpCode("ldlen", 0x008e, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref, StackBehaviour.Pushi);
        public static OpCode Ldelema = new OpCode("ldelema", 0x008f, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineType, StackBehaviour.Popref_popi, StackBehaviour.Pushi);
        public static OpCode Ldelem_i1 = new OpCode("ldelem.i1", 0x0090, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi, StackBehaviour.Pushi);
        public static OpCode Ldelem_u1 = new OpCode("ldelem.u1", 0x0091, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi, StackBehaviour.Pushi);
        public static OpCode Ldelem_i2 = new OpCode("ldelem.i2", 0x0092, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi, StackBehaviour.Pushi);
        public static OpCode Ldelem_u2 = new OpCode("ldelem.u2", 0x0093, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi, StackBehaviour.Pushi);
        public static OpCode Ldelem_i4 = new OpCode("ldelem.i4", 0x0094, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi, StackBehaviour.Pushi);
        public static OpCode Ldelem_u4 = new OpCode("ldelem.u4", 0x0095, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi, StackBehaviour.Pushi);
        public static OpCode Ldelem_i8 = new OpCode("ldelem.i8", 0x0096, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi, StackBehaviour.Pushi8);
        public static OpCode Ldelem_i = new OpCode("ldelem.i", 0x0097, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi, StackBehaviour.Pushi);
        public static OpCode Ldelem_r4 = new OpCode("ldelem.r4", 0x0098, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi, StackBehaviour.Pushr4);
        public static OpCode Ldelem_r8 = new OpCode("ldelem.r8", 0x0099, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi, StackBehaviour.Pushr8);
        public static OpCode Ldelem_ref = new OpCode("ldelem.ref", 0x009a, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi, StackBehaviour.Pushref);
        public static OpCode Stelem_i = new OpCode("stelem.i", 0x009b, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi_popi, StackBehaviour.Push0);
        public static OpCode Stelem_i1 = new OpCode("stelem.i1", 0x009c, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi_popi, StackBehaviour.Push0);
        public static OpCode Stelem_i2 = new OpCode("stelem.i2", 0x009d, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi_popi, StackBehaviour.Push0);
        public static OpCode Stelem_i4 = new OpCode("stelem.i4", 0x009e, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi_popi, StackBehaviour.Push0);
        public static OpCode Stelem_i8 = new OpCode("stelem.i8", 0x009f, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi_popi8, StackBehaviour.Push0);
        public static OpCode Stelem_r4 = new OpCode("stelem.r4", 0x00a0, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi_popr4, StackBehaviour.Push0);
        public static OpCode Stelem_r8 = new OpCode("stelem.r8", 0x00a1, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi_popr8, StackBehaviour.Push0);
        public static OpCode Stelem_ref = new OpCode("stelem.ref", 0x00a2, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Popref_popi_popref, StackBehaviour.Push0);
        public static OpCode Ldelem_any = new OpCode("ldelem.any", 0x00a3, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineType, StackBehaviour.Popref_popi, StackBehaviour.Push1);
        public static OpCode Stelem_any = new OpCode("stelem.any", 0x00a4, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineType, StackBehaviour.Popref_popi_popref, StackBehaviour.Push0);
        public static OpCode Unbox_any = new OpCode("unbox.any", 0x00a5, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineType, StackBehaviour.Popref, StackBehaviour.Push1);
        public static OpCode Conv_ovf_i1 = new OpCode("conv.ovf.i1", 0x00b3, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_u1 = new OpCode("conv.ovf.u1", 0x00b4, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_i2 = new OpCode("conv.ovf.i2", 0x00b5, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_u2 = new OpCode("conv.ovf.u2", 0x00b6, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_i4 = new OpCode("conv.ovf.i4", 0x00b7, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_u4 = new OpCode("conv.ovf.u4", 0x00b8, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_i8 = new OpCode("conv.ovf.i8", 0x00b9, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi8);
        public static OpCode Conv_ovf_u8 = new OpCode("conv.ovf.u8", 0x00ba, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi8);
        public static OpCode Refanyval = new OpCode("refanyval", 0x00c2, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineType, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Ckfinite = new OpCode("ckfinite", 0x00c3, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushr8);
        public static OpCode Mkrefany = new OpCode("mkrefany", 0x00c6, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineType, StackBehaviour.Popi, StackBehaviour.Push1);
        public static OpCode Ldtoken = new OpCode("ldtoken", 0x00d0, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineTok, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Conv_u2 = new OpCode("conv.u2", 0x00d1, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_u1 = new OpCode("conv.u1", 0x00d2, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_i = new OpCode("conv.i", 0x00d3, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_i = new OpCode("conv.ovf.i", 0x00d4, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Conv_ovf_u = new OpCode("conv.ovf.u", 0x00d5, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Add_ovf = new OpCode("add.ovf", 0x00d6, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Add_ovf_un = new OpCode("add.ovf.un", 0x00d7, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Mul_ovf = new OpCode("mul.ovf", 0x00d8, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Mul_ovf_un = new OpCode("mul.ovf.un", 0x00d9, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Sub_ovf = new OpCode("sub.ovf", 0x00da, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Sub_ovf_un = new OpCode("sub.ovf.un", 0x00db, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Push1);
        public static OpCode Endfinally = new OpCode("endfinally", 0x00dc, FlowControl.Return, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push0);
        public static OpCode Leave = new OpCode("leave", 0x00dd, FlowControl.Branch, OpCodeType.Primitive, OperandType.InlineBrTarget, StackBehaviour.PopAll, StackBehaviour.Push0);
        public static OpCode Leave_s = new OpCode("leave.s", 0x00de, FlowControl.Branch, OpCodeType.Macro, OperandType.ShortInlineBrTarget, StackBehaviour.PopAll, StackBehaviour.Push0);
        public static OpCode Stind_i = new OpCode("stind.i", 0x00df, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi_popi, StackBehaviour.Push0);
        public static OpCode Conv_u = new OpCode("conv.u", 0x00e0, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Arglist = new OpCode("arglist", 0xfe00, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ceq = new OpCode("ceq", 0xfe01, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Pushi);
        public static OpCode Cgt = new OpCode("cgt", 0xfe02, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Pushi);
        public static OpCode Cgt_un = new OpCode("cgt.un", 0xfe03, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Pushi);
        public static OpCode Clt = new OpCode("clt", 0xfe04, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Pushi);
        public static OpCode Clt_un = new OpCode("clt.un", 0xfe05, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1_pop1, StackBehaviour.Pushi);
        public static OpCode Ldftn = new OpCode("ldftn", 0xfe06, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineMethod, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Ldvirtftn = new OpCode("ldvirtftn", 0xfe07, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineMethod, StackBehaviour.Popref, StackBehaviour.Pushi);
        public static OpCode Ldarg = new OpCode("ldarg", 0xfe09, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineParam, StackBehaviour.Pop0, StackBehaviour.Push1);
        public static OpCode Ldarga = new OpCode("ldarga", 0xfe0a, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineParam, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Starg = new OpCode("starg", 0xfe0b, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineParam, StackBehaviour.Pop1, StackBehaviour.Push0);
        public static OpCode Ldloc = new OpCode("ldloc", 0xfe0c, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineVar, StackBehaviour.Pop0, StackBehaviour.Push1);
        public static OpCode Ldloca = new OpCode("ldloca", 0xfe0d, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineVar, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Stloc = new OpCode("stloc", 0xfe0e, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineVar, StackBehaviour.Pop1, StackBehaviour.Push0);
        public static OpCode Localloc = new OpCode("localloc", 0xfe0f, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi, StackBehaviour.Pushi);
        public static OpCode Endfilter = new OpCode("endfilter", 0xfe11, FlowControl.Return, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi, StackBehaviour.Push0);
        public static OpCode Unaligned_ = new OpCode("unaligned.", 0xfe12, FlowControl.Meta, OpCodeType.Prefix, OperandType.ShortInlineI, StackBehaviour.Pop0, StackBehaviour.Push0);
        public static OpCode Volatile_ = new OpCode("volatile.", 0xfe13, FlowControl.Meta, OpCodeType.Prefix, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push0);
        public static OpCode Tail_ = new OpCode("tail.", 0xfe14, FlowControl.Meta, OpCodeType.Prefix, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push0);
        public static OpCode Initobj = new OpCode("initobj", 0xfe15, FlowControl.Next, OpCodeType.Objmodel, OperandType.InlineType, StackBehaviour.Popi, StackBehaviour.Push0);
        public static OpCode Constrained_ = new OpCode("constrained.", 0xfe16, FlowControl.Next, OpCodeType.Prefix, OperandType.InlineTok, StackBehaviour.Pop0, StackBehaviour.Push0);
        public static OpCode Cpblk = new OpCode("cpblk", 0xfe17, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi_popi_popi, StackBehaviour.Push0);
        public static OpCode Initblk = new OpCode("initblk", 0xfe18, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Popi_popi_popi, StackBehaviour.Push0);
        public static OpCode No_ = new OpCode("no.", 0xfe19, FlowControl.Next, OpCodeType.Prefix, OperandType.ShortInlineI, StackBehaviour.Pop0, StackBehaviour.Push0);
        public static OpCode Rethrow = new OpCode("rethrow", 0xfe1a, FlowControl.Throw, OpCodeType.Objmodel, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push0);
        public static OpCode Sizeof = new OpCode("sizeof", 0xfe1c, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineType, StackBehaviour.Pop0, StackBehaviour.Pushi);
        public static OpCode Refanytype = new OpCode("refanytype", 0xfe1d, FlowControl.Next, OpCodeType.Primitive, OperandType.InlineNone, StackBehaviour.Pop1, StackBehaviour.Pushi);
        public static OpCode Readonly_ = new OpCode("readonly.", 0xfe1e, FlowControl.Next, OpCodeType.Prefix, OperandType.InlineNone, StackBehaviour.Pop0, StackBehaviour.Push0);
    }
}
